package main

import "fmt"

const (
	MIDDLE_C = iota
	C_SHARP
	B_FLAT
)

type Instrument interface {
	play(note int)
	adjust()
}

type Wind struct {
}

func (w Wind) play(note int) {
	fmt.Println("Wind.play()", note)
}

func (w Wind) adjust() {
	fmt.Println("Wind.adjust()")
}

type Stringed struct {
}

func (s Stringed) play(note int) {
	fmt.Println("Stringed.play()", note)
}

func (s Stringed) adjust() {
	fmt.Println("Stringed.adjust()")
}

type Percussion struct {
}

func (p Percussion) play(note int) {
	fmt.Println("Percussion.play()", note)
}

func (p Percussion) adjust() {
	fmt.Println("Percussion.adjust()")
}

type Woodwind struct {
	Wind
}

func (w Woodwind) play(note int) {
	fmt.Println("Woodwind.play()", note)
}

type Brass struct {
	Wind
}

func (b Brass) play(note int) {
	fmt.Println("Brass.play()", note)
}

func (b Brass) adjust() {
	fmt.Println("Brass.adjust()")
}
